package ws;

import java.util.ArrayList;
import java.util.Collection;

import org.orm.PersistentException;

import SOAPVO.AlumnoSOAPVO;
import SOAPVO.AnotadorSOAPVO;

import com.google.gson.Gson;

public class AnotadorSOA {
	
	/*
	 * 0 = Dato ingresado nulo 1 = No se encontro al alumno 2 = Excepcion
	 */
	public static String findById(int id) {
		String json = null;
		// Comprueba si la variable ingresada es nula
		if (id == 0) {
			// Retorna un 0, indicando que el dato ingresado es nulo
			json = "0";
		} else {
			try {
				orm.DAOFactory lDAOFactory = orm.DAOFactory.getDAOFactory();
				Collection<AnotadorSOAPVO> colectionAnotadorSOAPVO = new ArrayList<AnotadorSOAPVO>();
				orm.Tan_anotador ormAnotador;
				// Busca al anotador con esa id
				ormAnotador = lDAOFactory.getTan_anotadorDAO()
						.loadTan_anotadorByQuery("anot_id='" + id + "'", null);
				// Si no se encuentra el anotador, devuelve un 1, de lo contrario,
				// agrega al anotador a la coleccion y lo retorna
				if (ormAnotador == null) {
					json = "1";
				} else {
					AnotadorSOAPVO anotador = AnotadorSOAPVO
							.crearAnotadorSOAPVO(ormAnotador);
					colectionAnotadorSOAPVO.add(anotador);
					Gson gson = new Gson();
					json = gson.toJson(colectionAnotadorSOAPVO);
				}// fin guardando resultado
			} catch (PersistentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				// Retorna 2 indicando excepcion
				json = "2";
			}
		}
		return json;
	}
	
	/*
	 * 0 = Dato ingresado nulo 1 = No se encontro al alumno 2 = Excepcion
	 */
	public static String findByRut(String rut) {
		String json = null;
		// Comprueba si la variable ingresada es nula
		if ((rut == null) || (rut.equals(""))) {
			// Retorna un 0, indicando que el dato ingresado es nulo
			json = "0";
		} else {
			try {
				orm.DAOFactory lDAOFactory = orm.DAOFactory.getDAOFactory();
				Collection<AnotadorSOAPVO> colectionAnotadorSOAPVO = new ArrayList<AnotadorSOAPVO>();
				orm.Tan_anotador ormAnotador;
				// Busca al alumno con ese rut
				ormAnotador = lDAOFactory.getTan_anotadorDAO()
						.loadTan_anotadorByQuery("anot_rut='" + rut + "'", null);
				// Si no se encuentra el anotador, devuelve un 1, de lo contrario,
				// agrega al anotador a la coleccion y lo retorna
				if (ormAnotador == null) {
					json = "1";
				} else {
					AnotadorSOAPVO anotador = AnotadorSOAPVO
							.crearAnotadorSOAPVO(ormAnotador);
					colectionAnotadorSOAPVO.add(anotador);
					Gson gson = new Gson();
					json = gson.toJson(colectionAnotadorSOAPVO);
				}// fin guardando resultado
			} catch (PersistentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				// Retorna 2 indicando excepcion
				json = "2";
			}
		}
		return json;
	}
	
	public static String findAll() {

		String json = null;
		orm.DAOFactory lDAOFactory = orm.DAOFactory.getDAOFactory();
		Collection<AnotadorSOAPVO> coleccionAnotadorSOAPVO = new ArrayList<AnotadorSOAPVO>();
		orm.Tan_anotador[] ormAnotadores;
		try {

				ormAnotadores = lDAOFactory.getTan_anotadorDAO()
						.listTan_anotadorByQuery(null, null);
				// busqueda de todos los registros existentes

			int length = ormAnotadores.length;
			if (length == 0) {// si no se encontraron registros
				json = "No se ha encontrado ningun registro";
			} else {// si se encontraron registros
				for (int i = 0; i < length; i++) {
					System.out.println(ormAnotadores[i].getAnot_nombre());
					AnotadorSOAPVO objeto = AnotadorSOAPVO
							.crearAnotadorSOAPVO(ormAnotadores[i]);
					coleccionAnotadorSOAPVO.add(objeto);
				}// fin guardando resultados
				Gson gson = new Gson();
				json = gson.toJson(coleccionAnotadorSOAPVO);
			}

		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return json;
	}

}
